<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 选择排序
        /* 
            思路：比如一个数组，假定第一项为最小值 会记录第一项索引   ， 用第一项和剩下其他数组项来比较，
            如果有其他项比第一项值小，接下来就会
            把记录的索引换成那个小的值的索引 ，结束后 在通过索引互换2个值
        */
        var arr = [4, 3, 5, 1,2];
        /* 
         var index = 0;
         arr[0]  ----> 5 假定它是最小值
         用第一项和剩余的项比较
         第一次  [5,4,3,2,1];
         index = 1
         通过索引互换位置 [4,5,3,2,1];
         第二次 4 和3 比较 互换值 [3,5,4,2,1];
         第三次 3和2比较  互换值 [2,5,4,3,1];
         第四次 2和1比较  互换值[1,5,4,3,2];
        */

        //    第一次 把最小的放在最前面
        // var minIndex = 0;
        // for (var i = 1; i < arr.length; i++) {
        //     if (arr[minIndex] > arr[i]) {
        //         minIndex = i;
        //     }
        // }
        // //   console.log(minIndex);
        // var tem = arr[0];
        // arr[0] = arr[minIndex];
        // arr[minIndex] = tem;
        // console.log(arr);

        // //   第二次  把第二小的放在第二个
        // // [1,4,3,2,5]
        // var minIndex = 1;
        // for (var i = 2; i < arr.length; i++) {
        //     if (arr[minIndex] > arr[i]) {
        //         minIndex = i;
        //     }
        // }
        // //   console.log(minIndex);
        // var tem = arr[1];
        // arr[1] = arr[minIndex];
        // arr[minIndex] = tem;
        // console.log(arr);
        // //   第三次
        // var minIndex = 2;
        // for (var i = 3; i < arr.length; i++) {
        //     if (arr[minIndex] > arr[i]) {
        //         minIndex = i;
        //     }
        // }
        // //   console.log(minIndex);
        // var tem = arr[2];
        // arr[2] = arr[minIndex];
        // arr[minIndex] = tem;
        // console.log(arr);

        // //   第四次
        // var minIndex = 3;
        // for (var i = 4; i < arr.length; i++) {
        //     if (arr[minIndex] > arr[i]) {
        //         minIndex = i;
        //     }
        // }
        // //   console.log(minIndex);
        // var tem = arr[3];
        // arr[3] = arr[minIndex];
        // arr[minIndex] = tem;
        // console.log(arr);



        // 最终改成for循环
        for (var j = 0; j < arr.length - 1; j++) {
            var minIndex = j;
            for (var i = j+1; i < arr.length; i++) {
                if (arr[minIndex] > arr[i]) {
                    minIndex = i;
                }
            }
            //   console.log(minIndex);
            // 假定的最小值索引和找到的最小值索引值一样了，就没必要互换2个变量了；
            if(minIndex!==j){
                 var tem = arr[j];
                 arr[j] = arr[minIndex];
                arr[minIndex] = tem;
            }
           
        }
        console.log(arr);



    </script>
</body>

</html>